;Przykładowy kontrakt parametryczny i oznaczenie polarności ;autor: Tomasz Drab (tdr@cs.uni.wroc.pl) ;data: 18 maja 2020 r. ;licencja: CC-BY #lang racket (define/contract (uncurry f p) (parametric->/c [a b c] (-> (-> a b c) (cons/c a b) c)) (f (car p) (cdr p))) (require rackunit) (check-equal? (2 . + . 3) 5) (check-equal? (uncurry + '(2 . 3)) 5) ;polarności: ;((a b . -> . c) (cons/c a b) . -> . c) ; ; + + - - - + ; ; {------(-)---} {-(-)------} ; ;{-----------------------------(+)----}